#pragma once
#include "RBTree.hpp"

namespace zty{
  template <class K>
  class set{
    struct SetKofT{
      const K& operator()(const K &k){
        return k;
      } 
    };
    typedef RBTree<K, K, SetKofT> RBT;
    RBT _rbt;
  public:
    typedef typename RBT::iterator iterator;
    typedef typename RBT::const_iterator const_iterator;

    iterator begin(){
      return _rbt.begin();
    }

    iterator end(){
      return _rbt.end();
    }

    bool Insert(const K& k){
      return _rbt.Insert(k).second;
    }

    iterator Find(const K& k){
      return _rbt.Find(k);
    }

    void Inorder(){
      _rbt.Inorder();
    }
  };
   
}
